﻿using System;
using System.Windows.Input;

namespace WinRTFramework.Interfaces.Navigation
{
    public interface INavigationService
    {
        ICommand GoBackCommand { get; }
        ICommand GoForwardCommand { get; }
        ICommand GoHomeCommand { get; }

        bool CanGoBack { get; }
        void GoBack();

        bool CanGoForward { get; }
        void GoForward();

        bool CanGoHome { get; }
        void GoHome();

        bool Navigate<TViewModelType>(); //requests new instance of this type from IoC container
        bool Navigate<TViewModelType>(object navigationParameter); //requests new instance of this type from IoC container

        bool Navigate(Type vmType); //requests new instance of this type from IoC container
        bool Navigate(Type vmType, object navigationParameter); //requests new instance of this type from IoC container
    }
}
